package tt.dz.egobus.servicemanager.bean;

import tt.dz.egobus.bean.CodeStatus;
import tt.dz.egobus.bean.I18NCode;
import tt.dz.egobus.i18n.I18NProperties;
import tt.dz.egobus.i18n.SingletonI18NProperties;

/**
 * @author Anson
 * @date 17-3-14
 * @name 服务管理系统异常
 * @since 1.0.1
 */
public enum ServiceManagerCodeStatus implements I18NCode {


    SYSTEM_CODE_ERROR(20000001),

    PARAM_ILLEGAL_ERROR(20010001),

    PARAM_ENTITY_ERROR(20010002),


    /**
     * 车辆重复注册
     */
    PARAM_BUS_REGISTER_REPEAT_ERROR(20040001),

    /**
     * 服务存在有效的关系绑定
     */
    BUS_SERVICE_EXIST_RELATIVE(20040002),

    /**
     * 存在当前类型的车
     */
    BUS_TYPE_EXIST_BUS(20040003),

    /**
     * 当前车辆存在关联关系
     */
    BUS_EXIST_RELATIVE(20040004),

    /**
     * 当前车不存在
     */
    BUS_NOT_EXIT(20040005),

    /**
     * 车辆正在忙碌
     */
    BUS_BUSY(20040006),

    /**
     * 车辆已经被注册了服务
     */
    BUS_REGISTER_REBIND_ERROR(20040007),

    /**
     * 业务服务号已经存在
     */
    BUS_SERVICE_EXIST_ERROR(20040008),

    /**
     * 异常取消状态不能修改
     */
    ALERT_CANCEL_NOT_CHANGE(20040009),

    /**
     * 车牌号已经被占用
     */
    BUS_NO_EXIST_ERROR(20040010),

    /**
     * 司机删除失败
     */
    DRIVER_DELETE_ERROR(20040011),

    /**
     * 车辆存在未处理的异常信息
     */
    BUS_EXIST_ALERT_EXCEPTION_UNDONE(20040012),
    /**
     * 车辆已经与司机绑定了关系
     */
    BUS_ALIVE_DRIVER_RELATIVE(20040013),

    /**
     * 当前车辆状态处于司机控制阶段
     */
    BUS_STATUS_IN_DRIVER_CONTROLLER(20040014),

    /**
     * 车辆处于不可用状态
     */
    BUS_IN_UN_USED(20040015),

    /**
     * 系统登陆密码错误
     */
    MANAGER_LOGIN_PASSWORD_ERROR(20040101),

    /**
     * 系统账户找不到
     */
    MANAGER_USER_NOT_FOUND_ERROR(20040102),

    /**
     * 系统目前暂时不支持该服务
     */
    SERVICE_IS_NO_SUPPORT(20040103),;

    protected static final I18NProperties I18N_PROPERTIES = SingletonI18NProperties.SINGL_TON.properties();


    private int code;


    ServiceManagerCodeStatus(int code) {
        this.code = code;
    }

    @Override
    public int getCode() {
        return code;
    }

    /**
     * 获取状态码
     *
     * @return
     */
    public CodeStatus getCodeStatus() {
        return I18N_PROPERTIES.get(String.valueOf(this.code));
    }
}
